package model.objetos;

import excepciones.ObjetoComidoException;
import model.Laberinto;
import model.common.Constantes;
import model.posicion.Posicion;


public class PuntoDePoder extends Objetos{

/*******************************************************************************
* Constructor de la clase PuntoDePoder
*******************************************************************************/
	public PuntoDePoder(Posicion posicion,Laberinto elLaberinto){		
		super(posicion,Constantes.PUNTODEPODER, elLaberinto);
	}

/*******************************************************************************
* Retorna TRUE porque al ser una pared es inaccesible
******************************************************************************/	

	@Override
	public boolean accesible() {	
		return true;
	}
	
/*******************************************************************************
* Si el Objeto aun no fue comido, le cambia el estado y retorna los puntos para
* el PacMan y cambia el estado de los fantasmas.
*******************************************************************************/	

	@Override
	public void comer(Posicion posicion) {
		if (this.estaComible()){
			this.getElLaberinto().restarPuntosLaberinto();
			this.cambiarEstado(false);
			this.getElLaberinto().sumarPuntos(this.getPuntos());
			this.getElLaberinto().setFantasmasComibles();			
		}
		else
			throw new ObjetoComidoException("Punto de Poder ya comido");	
	}

}
